﻿using System.ComponentModel.DataAnnotations;

namespace HengTong.Model
{
    /// <summary>
    /// 标准状态
    /// </summary>
    public enum CommonState
    {
        启用,
        禁用,
        废弃
    }

    /// <summary>
    /// 性别
    /// </summary>
    public enum Gender
    {
        男 = 0,
        女 = 10,
        其他 = 20
    }

    /// <summary>
    /// 民族
    /// </summary>
    public enum Ethnicity
    {
        汉族 = 0,
        回族 = 10,
        满族 = 20,
        蒙古族 = 30,
        壮族 = 40,
        其他 = 50
    }

    /// <summary>
    /// 政治面貌
    /// </summary>
    public enum PoliticalStatus
    {
        群众 = 0,
        共青团员 = 10,
        中共党员 = 20,
        无党派人士 = 30,
        其他 = 40
    }

    /// <summary>
    /// 婚姻状况
    /// </summary>
    public enum MaritalStatus
    {
        未婚 = 0,
        已婚 = 10,
        离异 = 20,
        丧偶 = 30
    }

    /// <summary>
    /// 血型
    /// </summary>
    public enum BloodType
    {
        A = 0,
        B = 10,
        AB = 20,
        O = 30,
        其他 = 40
    }

    /// <summary>
    /// 用工形式
    /// </summary>
    public enum EmploymentType
    {
        全职 = 0,
        兼职 = 10,
        实习 = 20,
        外包 = 30
    }

    /// <summary>
    /// 合同类型
    /// </summary>
    public enum ContractType
    {
        固定期限 = 0,
        无固定期限 = 10,
        项目合同 = 20
    }

    /// <summary>
    /// 离职类型
    /// </summary>
    public enum ResignationType
    {
        主动离职 = 0,
        被动离职 = 10,
        退休 = 20,
        试用期不合格 = 30,
        严重违纪 = 40,
        严重失职或舞弊 = 50,
        兼岗影响履职且拒不改正 = 60,
        欺诈入职或合同无效 = 70,
        刑事责任 = 80,
        违反保密或竞业 = 90,
        其他 = 100,
        正常退休 = 110,
        提前退休 = 120,
        内退 = 130,
        病退 = 140,
        特殊工种退休 = 150,
        因公伤残退休 = 160,
        困难企业职工退休 = 170
    }

    /// <summary>
    /// 人员状态
    /// </summary>
    public enum PersonState
    {
        在职 = 0,
        离职 = 10,
        退休 = 20,
        试用期 = 30,
        待入职 = 40,
        辞退 = 50
    }

    /// <summary>
    /// 亲属关系类型
    /// </summary>
    public enum RelationshipType
    {
        父亲 = 0,
        母亲 = 10,
        配偶 = 20,
        子女 = 30,
        其他 = 40,
        兄弟姐妹 = 50
    }


    /// <summary>
    /// 招聘模块状态枚举（涵盖全流程，便于业务扩展）
    /// </summary>
    public enum HrStatus
    {
        申请中 = 0, // 候选人提交申请，待处理
        已审核 = 10, // HR/用人部门已审核通过
        已发布 = 15, // 招聘信息已发布
        已拒绝 = 20, // 审核/筛选未通过
        已面试 = 30, // 已安排面试
        面试通过 = 40, // 面试通过，进入后续流程
        面试未通过 = 50, // 面试未通过
        体检中 = 60, // 体检进行中
        体检通过 = 70, // 体检合格
        体检未通过 = 80, // 体检不合格
        背调中 = 90, // 背景调查进行中
        背调通过 = 100, // 背调合格
        背调未通过 = 110, // 背调不合格
        Offer已发 = 120, // Offer已发出
        Offer已接受 = 130, // 候选人已接受Offer
        Offer已拒绝 = 140, // 候选人拒绝Offer
        已录用 = 150, // 已确认录用
        已入职 = 160, // 已正式入职
        已报到 = 170, // 已到岗报到
        入职资料待完善 = 180, // 入职资料待补充
        试用中 = 190, // 试用期内
        已转正 = 200, // 试用期转正
        已放弃 = 210, // 候选人主动放弃
        已淘汰 = 220, // 招聘流程淘汰
        离职办理中 = 230, // 入职后离职流程中
        已离职 = 240 // 已离职
    }


    /// <summary>
    /// 学历枚举
    /// summary>
    public enum EducationLevel
    {
        小学 = -1,
        初中 = 0,
        高中 = 10,
        中专 = 20,
        大专 = 30,
        本科 = 40,
        研究生 = 50,
        硕士 = 60,
        博士 = 70,
        博士后 = 80,
        博士研究生 = 90,
        其他 = 100
    }

    /// <summary>
    /// 社保参保状态
    /// </summary>
    public enum SocialSecurityStatus
    {
        正常缴纳 = 0,
        暂停缴纳 = 10,
        已停保 = 20
    }

    /// <summary>
    /// 加班补偿方式
    /// </summary>
    public enum OvertimeCompensationType
    {
        等时调休 = 0,
        薪资补助 = 10
    }

    /// <summary>
    /// 调休类型
    /// </summary>
    public enum CompOffType
    {
        正常调休 = 0,
        等时调休 = 10,
        积分兑换 = 20
    }

    /// <summary>
    /// 学籍枚举
    /// </summary>
    public enum EducationType
    {
        全日制 = 0,
        非全日制 = 10
    }

    /// <summary>
    /// 调动类型枚举
    /// </summary>
    public enum TransferType
    {
        岗位调整 = 0,
        薪资调整 = 10,
        岗位和薪资调整 = 20,
        晋升 = 30,
        降级 = 40
    }

    /// <summary>
    /// 请假/出差类型
    /// </summary>
    public enum LeaveType
    {
        请假 = 0,
        出差 = 1
    }

    /// <summary>
    /// 资质等级枚举
    /// </summary>
    public enum QualificationLevel
    {
        高级 = 0,
        中级 = 10,
        初级 = 20,
        国家级 = 30,
        省级 = 40,
        市级 = 50,
        区县级 = 60,
        正高级 = 70,
        副高级 = 80,
        助理级 = 90,
        员级 = 100,
        特级 = 110,
        一级 = 120,
        二级 = 130,
        三级 = 140,
        四级 = 150,
        五级 = 160,
        其他 = 999
    }

    /// <summary>
    /// 生育状况
    /// </summary>
    public enum FertilityStatus
    {
        未育 = 0,
        一育 = 10,
        二育 = 20,
        三育 = 30,
        四育及以上 = 40
    }

    /// <summary>
    /// 专业大类
    /// </summary>
    public enum MajorCategory
    {
        化学化工类 = 0,
        工学 = 10,
        理学 = 20,
        医学 = 30,
        农学 = 40,
        管理学 = 50,
        经济学 = 60,
        法学 = 70,
        文学 = 80,
        教育学 = 90,
        艺术学 = 100,
        历史学 = 110,
        哲学 = 120,
        其他 = 999
    }


    /// <summary>
    /// 参与者类型
    /// </summary>
    public enum ParticipantType
    {
        个人 = 0,
        公司 = 1
    }

    /// <summary>
    /// 活动状态枚举
    /// </summary>
    public enum ActivityStatus
    {
        进行中 = 0,
        未开始 = 1,
        已结束 = 2
    }

    /// <summary>
    /// 编码重置规则枚举
    /// </summary>
    public enum CodeResetRule
    {
        [Display(Name = "永不重置")] Never = 0,

        [Display(Name = "每日重置")] Daily = 1,

        [Display(Name = "每月重置")] Monthly = 2,

        [Display(Name = "每年重置")] Yearly = 3
    }

    /// <summary>
    /// 文章状态枚举
    /// </summary>
    public enum ArticleStatus
    {
        [Display(Name = "草稿")] 草稿 = 0,

        [Display(Name = "已发布")] 已发布 = 10,

        [Display(Name = "已下线")] 已下线 = 20
    }

    // 目标类型枚举
    public enum DataPrivilegeTargetType
    {
        [Display(Name = "角色")] 角色 = 1,
        [Display(Name = "岗位")] 岗位 = 2,
        [Display(Name = "部门")] 部门 = 3
    }

    // 权限范围枚举
    public enum DataPrivilegeScope
    {
        [Display(Name = "仅本人")] 仅本人 = 1,
        [Display(Name = "本部门")] 本部门 = 2,
        [Display(Name = "本部门及下级")] 本部门及下级 = 3,
        [Display(Name = "指定部门")] 指定部门 = 4,
        [Display(Name = "全部")] 全部 = 5,
        [Display(Name = "自定义")] 自定义 = 9
    }


    /// <summary>
    /// 库存类型
    /// </summary>
    public enum StoreType
    {
        普通 = 'G',
        备品 = 'H',
        供应商寄存 = 'S',
        赠品 = 'P',
        其它 = 'Q',
        客户寄存 = 'D',
        受托代销 = 'B',
        客户来料 = 'C',
        委托代销 = 'E',
        借出 = 'L',
        借入 = 'R',
        设备 = 'F',
    }

    /// <summary>
    /// 合作伙伴类型枚举
    /// </summary>
    public enum PartnerType
    {
        供应商,
        客户,
        供应商和客户
    }
}